home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
language
/
fools.lzh
/
README.1ST
< prev
Wrap
Text File
|
1990-03-02
|
3KB
|
78 lines
Jonathan advertised the existence of his free scheme interpreter on
comp.lang.scheme. I grabbed a copy and compiled it up under GNU C
(Thanks to J.Bammi for the GNU C port).
It seemed to go OK, a few messages batted back and forth between myself and
Jonathan to fix a few ST peccadillos (output buffer flushing, mainly), so I
thought I'd make the binary available for Atarians to play with.
Firstly, Jonathan's copyright ....
* Copyright 1989 Jonathan Lee. All rights reserved.
*
* Permission to use, copy, and/or distribute for any purpose and
* without fee is hereby granted, provided that both the above copyright
* notice and this permission notice appear in all copies and derived works.
* Fees for distribution or use of this software or derived works may only
* be charged with express written permission of the copyright holder.
* This software is provided ``as is'' without express or implied warranty.
Right, to business. Fools' lisp is run from GEM or the CLI of your choice with
fools init.scm extra.scm
if you want the extend-syntax stuff, add macros.scm to the arguments. The file
'fl' (a csh script) shows how it's done.
You'll probably need to read R3RS (Revised3 Report on Scheme) which defines
the R3RS syntax (added with macros.scm - else fools' lisp is not quite R3RS
conformant).
I added a function "cputime" (0 args) which returns CPU ticks. Use it for
benchmarking.
Change the searched directory path in "extra.scm" to suit your own set up and
give U**x-style pathnames to the interpreter (thanks Edgar for unx2dos). I
found it useful to have a "src" subdirectory, which I added to the pathnames in
extra.scm, then giving (require 'filename) worked happily, as did (load
"src/filename").
It hasn't been exhaustively tested yet and Jonathan advises that there are a
couple of bugfixes (which he'll send me soon), but an R3RS-conformant scheme
interpreter for the ST ain't to be sneezed at!
I am advised that the following code is a fair guide to performance:
(define (nfib x)
(if (< x 2)
1
(+ (nfib (- x 2)) (nfib (- x 1)) 1)))
With the result of the nfib calculation being the number of procedure calls
made (--ish), so choosing a sensible x (try between 15 & 20) and using a
stopwatch (hey, whaddya want, precision, on an ST!!?), you can work out how
fast it goes (--ish).
One fine day, I'll make a concerted effort at porting Cscheme, but that's a
tight fit in 2.5Mb, let alone 1Mb. As far as memory goes, this *should* run on
a 520, but no guarantees.
Jonathan says that he's going to incorporate the #ifdef atari switches into
the source code, so the ST will continue to receive implicit support, at least.
But he's nominated me to field ST-specific queries, my email address appears
below.
Cheers,
Graham
======
------------------------------------------------------------------
Graham Higgins | Phone: (0272) 799910 x 24060
Hewlett-Packard Labs | gray@hpl.hp.co.uk
Bristol | gray%hplb.uucp@ukc.ac.uk
U.K. | gray@hplb.hpl.hp.com
------------------------------------------------------------------
Disclaimer: My opinions above are exactly that, mine and opinions.
------------------------------------------------------------------